package org.example.projectdemo.service;

import org.example.projectdemo.model.entity.User;
import org.example.projectdemo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

/**
 * ClassName: UserService
 * Package: org.example.projectdemo.service.impl
 * Description:
 *
 * @Author ZY
 * @Create 23:16
 * @Version 1.0
 */
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    // 创建用户
    public User createUser(User user) {
        // 确保ID为null以创建新记录
        user.setId(null);
        return userRepository.save(user);
    }

    // 更新用户
    public User updateUser(User user) {
        // 确保ID存在以更新记录
        if (user.getId() == null || !userRepository.existsById(user.getId())) {
            throw new IllegalArgumentException("用户ID不存在，无法更新");
        }
        return userRepository.save(user);
    }

    // 根据ID查找用户
    public Optional<User> getUserById(Long id) {
        return userRepository.findById(id);
    }

    // 检查用户是否存在
    public boolean existsUserById(Long id) {
        return userRepository.existsById(id);
    }

    // 查找所有用户
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    // 根据用户名查找用户（用于登录）
    public Optional<User> getUserByUsername(String username) {
        return userRepository.findByUsername(username);
    }

    // 检查用户名是否存在（用于注册验证）
    public boolean existsByUsername(String username) {
        return userRepository.existsByUsername(username);
    }

    // 删除用户
    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}